using System;
using System.Data;
using LibreriaCommon;

namespace LibreriaBusiness
{
    /// <summary>
    /// Clase abstracta utilizada por las clases de negocio. 
    /// </summary>
    public abstract class boBase
	{
        protected SecurityInfo securityInfo;

        /// <summary>
        /// Constructor de la clase.
        /// </summary>
        /// <param name="securityInfo">Referencia a un objeto SecurityInfo.</param>
        public boBase(SecurityInfo securityInfo)
		{
			this.securityInfo = securityInfo;
		}

        /// <summary>
        /// Llenar los datos de log.
        /// </summary>
        /// <param name="dr">DataRow</param>
        protected void FillLog(DataRow dr)
        {
            if (dr.Table.Columns.Contains("UsuarioAlta") && dr.RowState == DataRowState.Detached)
            {
                dr["UsuarioAlta"] = securityInfo.UsuarioId;
                dr["FechaAlta"] = DateTime.Now;
            }

            if (dr.Table.Columns.Contains("UsuarioModificacion") && dr.RowState == DataRowState.Modified)
            {
                dr["UsuarioModificacion"] = securityInfo.UsuarioId;
                dr["FechaModificacion"] = DateTime.Now;
            }
        }
	}
}
